package br.com.datatraffic.fiscal.entidades;

// Generated 17/08/2007 09:44:48 by Hibernate Tools 3.2.0.b9

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Funcionalidade generated by hbm2java
 */
@Entity
@Table(name = "TBFUNCIONALIDADE")
public class Funcionalidade5 implements java.io.Serializable {

	private Long id;
	private Funcionalidade5 funcionalidade;
	private String descricao;
	private String url;
	private BigDecimal sequencia;
	private List<Funcionalidade5> funcionalidades = new ArrayList<Funcionalidade5>(0);
	private List<PermissaoPerfil> permissaoPerfils = new ArrayList<PermissaoPerfil>(0);
	private List<PermissaoOperador> permissaoOperadors = new ArrayList<PermissaoOperador>(0);

	public Funcionalidade5() {
	}

	public Funcionalidade5(Long id, String descricao) {
		this.id = id;
		this.descricao = descricao;
	}

	public Funcionalidade5(Long id, Funcionalidade5 funcionalidade, String descricao, String url, BigDecimal sequencia,
			List<Funcionalidade5> funcionalidades, List<PermissaoPerfil> permissaoPerfils,
			List<PermissaoOperador> permissaoOperadors) {
		this.id = id;
		this.funcionalidade = funcionalidade;
		this.descricao = descricao;
		this.url = url;
		this.sequencia = sequencia;
		this.funcionalidades = funcionalidades;
		this.permissaoPerfils = permissaoPerfils;
		this.permissaoOperadors = permissaoOperadors;
	}

	@Id
	@GeneratedValue
	@Column(name = "FUNCIONALIDADE_ID", unique = true, nullable = false, precision = 22, scale = 0)
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "FUNCIONALIDADE_PAI")
	public Funcionalidade5 getFuncionalidade() {
		return this.funcionalidade;
	}

	public void setFuncionalidade(Funcionalidade5 funcionalidade) {
		this.funcionalidade = funcionalidade;
	}

	@Column(name = "NOME", nullable = false, length = 60)
	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	@Column(name = "URL")
	public String getUrl() {
		return this.url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@Column(name = "SEQUENCIA", precision = 22, scale = 0)
	public BigDecimal getSequencia() {
		return this.sequencia;
	}

	public void setSequencia(BigDecimal sequencia) {
		this.sequencia = sequencia;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "funcionalidade")
	public List<Funcionalidade5> getFuncionalidades() {
		return this.funcionalidades;
	}

	public void setFuncionalidades(List<Funcionalidade5> funcionalidades) {
		this.funcionalidades = funcionalidades;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "funcionalidade")
	public List<PermissaoPerfil> getPermissaoPerfils() {
		return this.permissaoPerfils;
	}

	public void setPermissaoPerfils(List<PermissaoPerfil> permissaoPerfils) {
		this.permissaoPerfils = permissaoPerfils;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "funcionalidade")
	public List<PermissaoOperador> getPermissaoOperadors() {
		return this.permissaoOperadors;
	}

	public void setPermissaoOperadors(List<PermissaoOperador> permissaoOperadors) {
		this.permissaoOperadors = permissaoOperadors;
	}

	// The following is extra code specified in the hbm.xml files
	private static final long serialVersionUID = 1L;
	// end of extra code specified in the hbm.xml files

}
